#ifndef TLS_BXDF_H
#define TLS_BXDF_H
#include "geometry.h"
#include "triangle.h"
#include <cstdio>

namespace tls{
  struct bxdf{
    enum{DIFFUSE};
    int type;
    virtual vec3 f(const isect& hit) const=0;
    virtual ~bxdf();
  };
  //---lambertian---
  struct lambertian:public bxdf{
    vec3 r;
    
    lambertian(const vec3& refl):r(refl){type=DIFFUSE;}
    ~lambertian();
    vec3 f(const isect& hit)const;
  };
  void* create_lambertian(std::FILE* file);
  
  
}//namespace tls

#endif

